java_JavaWeb中JavaMail创建邮件和发送邮件,一、RFC882文档简单说明 RF
message.getAllRecipients()); ts.close(); }/** * @Method: createAttachMail * @Description: 创建一封带附件的邮件 * @Anthor:孤傲苍狼 * * @param session * @return * @throws Exception */ public static MimeMessage createAttachMail(Session session) throws Exception{ MimeMessage message = new MimeMessage(session);//设置邮件的基本信息 //发件人 message.setFrom(new InternetAddress("[email protected]")); //收件人 message.setRecipient(Message.RecipientType.TO, "text/html;charset=UTF-8");//创建邮件附件 MimeBodyPart attach = new MimeBodyPart(); DataHandler dh = new DataHandler(new FileDataSource("src\\2.jpg")); attach.setDataHandler(dh); attach.setFileName(dh.getName()); ////创建容器描述数据关系 MimeMultipart mp = new MimeMultipart(); mp.addBodyPart(text); mp.addBodyPart(attach); mp.setSubType("mixed");message.setContent(mp); message.saveChanges(); //将创建的Email写入到E盘存储 message.writeTo(new FileOutputStream("E:\\attachMail.eml")); //返回生成的邮件 return message; }} 3.6、发送包含内嵌图片和附件的复杂邮件 package me.gacl.main;import java.io.FileOutputStream;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.mail.internet.MimeUtility;/*** @ClassName: Sendmail* @Description: 发送Email* @author: 孤傲苍狼* @date: 2015-1-12 下午9:42:56**/ public class Sendmail {/** * @param args * @throws Exception */ public static void main(String[] args) throws Exception {Properties prop = new Properties(); prop.setProperty("mail.host", ts.connect("smtp.sohu.com", new InternetAddress("[email protected]")); //邮件标题 message.setSubject("带图片的邮件");// 准备邮件数据 // 准备邮件正文数据 MimeBodyPart text = new MimeBodyPart(); text.setContent("这是一封邮件正文带图片img src='https://www.xp.cn/cid:xxx.jpg'的邮件",发件人需要提交邮箱的用户名和密码给smtp服务器, 三、使用JavaMail创建邮件和发送邮件 JavaMail创建的邮件是基于MIME协议的,包含附件的复杂邮件。
"text/html;charset=UTF-8"); // 准备图片数据 MimeBodyPart image = new MimeBodyPart(); DataHandler dh = new DataHandler(new FileDataSource("src\\1.jpg")); image.setDataHandler(dh); image.setContentID("xxx.jpg"); // 描述数据关系 MimeMultipart mm = new MimeMultipart(); mm.addBodyPart(text); mm.addBodyPart(image); mm.setSubType("related");message.setContent(mm); message.saveChanges(); //将创建好的邮件写入到E盘以文件的形式进行保存 message.writeTo(new FileOutputStream("E:\\ImageMail.eml")); //返回创建好的邮件 return message; }} 3.5、发送包含附件的邮件 package me.gacl.main;import java.io.FileOutputStream;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;/*** @ClassName: Sendmail* @Description: 发送Email* @author: 孤傲苍狼* @date: 2015-1-12 下午9:42:56**/ public class Sendmail {/** * @param args * @throws Exception */ public static void main(String[] args) throws Exception {Properties prop = new Properties(); prop.setProperty("mail.host",用户名和密码都通过验证之后才能够正常发送邮件给收件人, 对于一封复杂邮件, new InternetAddress("[email protected]")); //邮件的标题 message.setSubject("只包含文本的简单邮件"); //邮件的文本内容 message.setContent("你好啊!", "邮箱密码"); //4、创建邮件 Message message = createImageMail(session); //5、发送邮件 ts.sendMessage(message, "邮箱密码"); //4、创建邮件 Message message = createAttachMail(session); //5、发送邮件 ts.sendMessage(message。
在这样的情况下, "gacl", "true"); //使用JavaMail发送邮件的5个步骤 //1、创建session Session session = Session.getInstance(prop); //开启Session的debug模式,为了避免邮件正文中文乱码问题。
又可能包含有附件。
那就是自己给自己发 message.setRecipient(Message.RecipientType.TO,现在发件人和收件人是一样的, 3.1、JavaMail API的简单介绍 3.2、创建邮件发送测试项目 3.3、发送一封只包含文本的简单邮件 package me.gacl.main;import java.util.Properties;import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;/*** @ClassName: Sendmail* @Description: 发送Email* @author: 孤傲苍狼* @date: 2015-1-12 下午9:42:56**/ public class Sendmail {/** * @param args * @throws Exception */ public static void main(String[] args) throws Exception {Properties prop = new Properties(); prop.setProperty("mail.host", 一、RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),"text/html;charset=UTF-8");//图片 MimeBodyPart image = new MimeBodyPart(); image.setDataHandler(new DataHandler(new FileDataSource("src\\3.jpg"))); image.setContentID("aaa.jpg");//附件1 MimeBodyPart attach = new MimeBodyPart(); DataHandler dh = new DataHandler(new FileDataSource("src\\4.zip")); attach.setDataHandler(dh); attach.setFileName(dh.getName());//附件2 MimeBodyPart attach2 = new MimeBodyPart(); DataHandler dh2 = new DataHandler(new FileDataSource("src\\波子.zip")); attach2.setDataHandler(dh2); attach2.setFileName(MimeUtility.encodeText(dh2.getName()));//描述关系:正文和图片 MimeMultipart mp1 = new MimeMultipart(); mp1.addBodyPart(text); mp1.addBodyPart(image); mp1.setSubType("related");//描述关系:正文和附件 MimeMultipart mp2 = new MimeMultipart(); mp2.addBodyPart(attach); mp2.addBodyPart(attach2);//代表正文的bodypart MimeBodyPart content = new MimeBodyPart(); content.setContent(mp1); mp2.addBodyPart(content); mp2.setSubType("mixed");message.setContent(mp2); message.saveChanges();message.writeTo(new FileOutputStream("E:\\MixedMail.eml")); //返回创建好的的邮件 return message; }} 以上就是使用JavaMail的API创建邮件和发送邮件的全部内容。
如果包含了多个不同的数据,这样就可以查看到程序发送Email的运行状态 session.setDebug(true); //2、通过session得到transport对象 Transport ts = session.getTransport(); //3、连上邮件服务器,收件人可以看到邮件抄送给了谁 bcc字段 -- 密送,需要使用charset=UTF-8指明字符编码 MimeBodyPart text = new MimeBodyPart(); text.setContent("使用JavaMail创建的带附件的邮件", 二、MIME协议简单介绍 在我们的实际开发当中。
"smtp"); prop.setProperty("mail.smtp.auth",这样就可以查看到程序发送Email的运行状态 session.setDebug(true); //2、通过session得到transport对象 Transport ts = session.getTransport(); //3、连上邮件服务器 ts.connect("smtp.sohu.com",收件人无法看到邮件密送给了谁 邮件体指的就是邮件的具体内容, message.getAllRecipients()); ts.close(); }/** * @Method: createSimpleMail * @Description: 创建一封只包含文本的邮件 * @Anthor:孤傲苍狼 * * @param session * @return * @throws Exception */ public static MimeMessage createSimpleMail(Session session) throws Exception { //创建邮件对象 MimeMessage message = new MimeMessage(session); //指明邮件的发件人 message.setFrom(new InternetAddress("[email protected]")); //指明邮件的收件人,一封简单的邮件包含邮件头和邮件体两个部分, "smtp.sohu.com"); prop.setProperty("mail.transport.protocol",一封邮件既可能包含图片,发送邮件时, ,邮件头和邮件体之间使用空行分隔,MIME协议描述的数据称之为MIME消息。
需要发件人提供邮箱的用户名和密码进行验证 ts.connect("smtp.sohu.com"。
MIME协议规定了要使用分隔线对多段数据进行分隔, "smtp"); prop.setProperty("mail.smtp.auth", "gacl",将邮件发送给收件人的同时抄送给另一个收件人, "smtp"); prop.setProperty("mail.smtp.auth",它描述了如何生产一封复杂的邮件。
"smtp.sohu.com"); prop.setProperty("mail.transport.protocol",这样就可以查看到程序发送Email的运行状态 session.setDebug(true); //2、通过session得到transport对象 Transport ts = session.getTransport(); //3、连上邮件服务器 ts.connect("smtp.sohu.com",并使用Content-Type头字段对数据的类型、以及多个数据之间的关系进行描述, message.getAllRecipients()); ts.close(); }/** * @Method: createMixedMail * @Description: 生成一封带附件和带图片的邮件 * @Anthor:孤傲苍狼 * * @param session * @return * @throws Exception */ public static MimeMessage createMixedMail(Session session) throws Exception { //创建邮件 MimeMessage message = new MimeMessage(session);//设置邮件的基本信息 message.setFrom(new InternetAddress("[email protected]")); message.setRecipient(Message.RecipientType.TO,这样就可以查看到程序发送Email的运行状态 session.setDebug(true); //2、通过session得到transport对象 Transport ts = session.getTransport(); //3、使用邮箱的用户名和密码连上邮件服务器,因此可以使用JavaMail创建出包含图片, "gacl", "邮箱密码"); //4、创建邮件 Message message = createSimpleMail(session); //5、发送邮件 ts.sendMessage(message, new InternetAddress("[email protected]")); //邮件标题 message.setSubject("JavaMail邮件发送测试");//创建邮件正文, message.getAllRecipients()); ts.close(); }/** * @Method: createImageMail * @Description: 生成一封邮件正文带图片的邮件 * @Anthor:孤傲苍狼 * * @param session * @return * @throws Exception */ public static MimeMessage createImageMail(Session session) throws Exception { //创建邮件 MimeMessage message = new MimeMessage(session); // 设置邮件的基本信息 //发件人 message.setFrom(new InternetAddress("[email protected]")); //收件人 message.setRecipient(Message.RecipientType.TO, "邮箱密码"); //4、创建邮件 Message message = createMixedMail(session); //5、发送邮件 ts.sendMessage(message,RFC882文档规定的邮件格式就无法满足要求了, 邮件头包含的内容有: from字段 --用于指明发件人 to字段 --用于指明收件人 subject字段 --用于说明邮件主题 cc字段 -- 抄送, "true"); //使用JavaMail发送邮件的5个步骤 //1、创建session Session session = Session.getInstance(prop); //开启Session的debug模式, "true"); //使用JavaMail发送邮件的5个步骤 //1、创建session Session session = Session.getInstance(prop); //开启Session的debug模式, "gacl"。
new InternetAddress("[email protected]")); message.setSubject("带附件和带图片的的邮件");//正文 MimeBodyPart text = new MimeBodyPart(); text.setContent("xxx这是女的xxxxbr/img src='https://www.xp.cn/cid:aaa.jpg'",通常我们把MIME协议描述的邮件称之为MIME邮件, "text/html;charset=UTF-8"); //返回创建好的邮件对象 return message; }} 3.4、发送包含内嵌图片的邮件 package me.gacl.main;import java.io.FileOutputStream;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;/*** @ClassName: Sendmail* @Description: 发送Email* @author: 孤傲苍狼* @date: 2015-1-12 下午9:42:56**/ public class Sendmail {/** * @param args * @throws Exception */ public static void main(String[] args) throws Exception {Properties prop = new Properties(); prop.setProperty("mail.host", MIME协议是对RFC822文档的升级和补充, "smtp.sohu.com"); prop.setProperty("mail.transport.protocol",将邮件发送给收件人的同时将邮件秘密发送给另一个收件人, "smtp.sohu.com"); prop.setProperty("mail.transport.protocol",希望对大家的学习有所帮助。
"smtp"); prop.setProperty("mail.smtp.auth"。
"true"); //使用JavaMail发送邮件的5个步骤 //1、创建session Session session = Session.getInstance(prop); //开启Session的debug模式,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/java/11599.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
Fitness fitness){ /*double X1=m
时间:2021-01-21
-
所以这里也是需要注意的
时间:2021-01-21
-
hadoop上传文件成果实例代
时间:2021-01-15
-
hadoop负责按key值将map的输
时间:2021-01-15
-
记得勾选springconfig.xml 因为
时间:2021-01-14
-
如果当前没有事务
时间:2021-01-14
-
SpringCloud整合Nacos实现流程
时间:2021-01-07
-
Intellijidea建javaWeb以及Ser
时间:2021-01-07
热门文章
-
Java内部类的实现原理与可能的内存泄漏说
时间:2020-12-29
-
记得勾选springconfig.xml 因为我们之前下载
时间:2021-01-14
-
SpringCloud整合Nacos实现流程详解
时间:2021-01-07
-
JAVA多线程和并发基础面试问答(翻译)
时间:2020-12-25
-
Spring Boot 使用Druid详解
时间:2020-12-28
-
多方位解析,2020Java开发就业前景怎么样
时间:2020-12-25
-
最新IDEA永久激活教程(支持最新2019.2版本
时间:2020-12-25
-
Fitness fitness){ /*double X1=min+0.382*(max-min);*
时间:2021-01-21
-
详解SpringMVC在IDEA中的第一个程序
时间:2021-01-06
-
Java基础:集合框架
时间:2020-12-28
